#!/usr/bin/env python
# encoding: utf-8
'''
@author: Excelsiorly
@license: (C) Copyright 2022, All Rights Reserved.
@contact: excelsiorly@qq.com
@file: 151. 翻转字符串里的单词.py
@time: 2022/1/16 13:29
@desc: https://leetcode-cn.com/problems/reverse-words-in-a-string/
> 给你一个字符串 s ，逐个翻转字符串中的所有 单词 。
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。

说明：
    - 输入字符串 s 可以在前面、后面或者单词间包含多余的空格。
    - 翻转后单词间应当仅用一个空格分隔。
    - 翻转后的字符串中不应包含额外的空格。

1. Ot(n), Os(n)
'''

class Solution(object):
    def reverseWords(self, s):
        """
        :type s: str
        :rtype: str
        """
        s_list = s.split()
        if not s_list: return ''

        n = len(s_list)

        for i in range(n // 2):
            s_list[i], s_list[n - 1 - i] = s_list[n - 1 - i], s_list[i]

        return ' '.join(s_list)

